﻿using Nop.Core.Domain.Directory;
using Nop.Core.Domain.Localization;
using Nop.Core.Domain.Orders;

namespace Nop.Core.Domain.Tax
{
    /// <summary>
    /// Represents a surcharge rate
    /// </summary>
    public partial class Surcharge : BaseEntity
    {
        /// <summary>
        /// Gets or sets the surcharge type identifier
        /// </summary>
        public int SurchargeTypeId { get; set; }

        /// <summary>
        /// Gets or sets the percentage or the fixed charge
        /// </summary>
        public decimal PercentageOrFee { get; set; }

        /// <summary>
        /// Gets or sets the country identifier
        /// </summary>
        public int? CountryId { get; set; }

        /// <summary>
        /// Gets or sets the state/province identifier
        /// </summary>
        public int? StateProvinceId { get; set; }

        /// <summary>
        /// Gets or sets the zip
        /// </summary>
        public string Zip { get; set; }

        /// <summary>
        /// Gets or sets order identifier
        /// </summary>
        public int OrderId { get; set; }

        /// <summary>
        /// Gets or sets value 
        /// </summary>
        public decimal Value { get; set; }

        /// <summary>
        /// Gets or sets the order product variant identifier
        /// </summary>
        public int OrderProductVariantId { get; set; }

        /// <summary>
        /// Gets or sets the surcharge type
        /// </summary>
        public virtual SurchargeType SurchargeType { get; set; }

        /// <summary>
        /// Gets or sets order
        /// </summary>
        public virtual Order Order { get; set; }

        /// <summary>
        /// Gets or sets the order product variant
        /// </summary>
        public virtual OrderProductVariant OrderProductVariant { get; set; }
    }
}
